package com.basic.business.order.domain;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import com.basic.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;

/**
 * 业务-订单主对象 t_orders_main
 * 
 * @author zhaoxy_jn@163.com
 * @date 2025-03-03
 */
@Getter
@Setter
@ExcelIgnoreUnannotated
public class TOrdersMain extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 系统订单号 */
    private String sid;

    /** 平台编号 */
    @ExcelProperty(value = "平台编号")
    private String tid;

    /** 内部单号 */
    @ExcelProperty(value = "内部单号")
    private String shortId;

    /** 店铺名称 */
    @ExcelProperty(value = "店铺名称")
    private String shopName;

    /** 订单下的商品数量 */
    @ExcelProperty(value = "订单下的商品数量")
    private long itemNum;

    /** 订单下的商品种类数 */
    @ExcelProperty(value = "订单下的商品种类数")
    private long itemKindNum;

    /** 订单买家已付金额（单位：元） */
    @ExcelProperty(value = "订单买家已付金额")
    private BigDecimal payAmount;

    /** 订单系统状态 WAIT_BUYER_PAY【待付款】 WAIT_AUDIT【待审核】 WAIT_FINANCE_AUDIT【等待财审】 WAIT_MANUAL_AUDIT【等待人工审核】 FINISHED_AUDIT【审核完成】 WAIT_EXPRESS_PRINT【待打印快递单】 SYS_STATUS_WAIT_DELIVERY_PRINT【待打印发货单】 WAIT_PACKAGE【待打包】 WAIT_WEIGHT【待称重】 WAIT_SEND_GOODS【待发货】 WAIT_DEST_SEND_GOODS【待供销商发货】 SELLER_SEND_GOODS【卖家已发货】 FINISHED【交易完成】 CLOSED【交易关闭】 CANCEL【交易作废】 */
    @ExcelProperty(value = "订单系统状态 WAIT_BUYER_PAY【待付款】 WAIT_AUDIT【待审核】 WAIT_FINANCE_AUDIT【等待财审】 WAIT_MANUAL_AUDIT【等待人工审核】 FINISHED_AUDIT【审核完成】 WAIT_EXPRESS_PRINT【待打印快递单】 SYS_STATUS_WAIT_DELIVERY_PRINT【待打印发货单】 WAIT_PACKAGE【待打包】 WAIT_WEIGHT【待称重】 WAIT_SEND_GOODS【待发货】 WAIT_DEST_SEND_GOODS【待供销商发货】 SELLER_SEND_GOODS【卖家已发货】 FINISHED【交易完成】 CLOSED【交易关闭】 CANCEL【交易作废】")
    private String sysStatus;

    /** 快递公司的名称 */
    @ExcelProperty(value = "快递公司的名称")
    private String expressCompanyName;

    /** 快递公司的编码 */
    @ExcelProperty(value = "快递公司的编码")
    private String expressCode;

    /** 运单号 */
    @ExcelProperty(value = "运单号")
    private String outSid;

    /** 标签id，多个用英文逗号隔开 */
    @ExcelProperty(value = "标签id，多个用英文逗号隔开")
    private String tags;

    /** 下单时间 */
    @ExcelProperty(value = "下单时间")
    private long created;

    /** 付款时间 */
    @ExcelProperty(value = "付款时间")
    private long payTime;

    /** 数据更新时间 */
    @ExcelProperty(value = "数据更新时间")
    private long updTime;

    /** 四合一 */
    private String conditions;

    private String orderStatus;

    private long accessTime;

    /** 整理时间 */
    private long organizeTime;

    /** 分配时间 */
    private long assignTime;

    /** 异常退回时间 */
    private long backTime;

    /** 退款时间 */
    private long refundTime;

    /** 备注类型 0普通 1简单设计 2门牌 */
    private String memoValue;

    /** 接单人 */
    private String customer;

    /** 分配类型 */
    private String allocateType;

    /** 是否超时 */
    private boolean isOverdue = false;

    /** 超多少小时 */
    private int overdueHours;

    /** 详情图片 */
    private String detailPics;

    /** 事业部类型 */
    private String buType;

    /** 合单信息 */
    private List<TOrdersMerge> mergeList = new ArrayList<>(Collections.emptyList());

}
